package com.ruoyi.card.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 卡信息对象 card_info
 * 
 * @author ruoyi
 * @date 2023-06-05
 */
public class CardInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private Long cardId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 虚拟卡卡号 */
    @Excel(name = "虚拟卡卡号")
    private String cardNumber;

    /** 卡片名称 */
    @Excel(name = "卡片名称")
    private String cardName;

    /** 商户业务号VID */
    @Excel(name = "商户业务号VID")
    private String vid;

    /** VID账户名称 */
    @Excel(name = "VID账户名称")
    private String accountName;

    /** BIN段 */
    @Excel(name = "BIN段")
    private String bin;

    /** 卡片所属分组 */
    @Excel(name = "卡片所属分组")
    private String groupName;

    /** 自动额度管理(0,1) 备注: 0:OFF;1:NO */
    @Excel(name = "自动额度管理(0,1) 备注: 0:OFF;1:NO")
    private Integer isAutoLimit;

    /** 日限额 */
    @Excel(name = "日限额")
    private BigDecimal dayLimitAmount;

    /** 卡片近一天交易金额 */
    @Excel(name = "卡片近一天交易金额")
    private BigDecimal balanceAmount;

    /** 日限额 */
    @Excel(name = "日限额")
    private BigDecimal recentAmount;

    /** 卡片本月累计交易金额 */
    @Excel(name = "卡片本月累计交易金额")
    private BigDecimal monthAmount;

    /** 卡片本年累计交易金额 */
    @Excel(name = "卡片本年累计交易金额")
    private BigDecimal yearAmount;

    /** 卡片累计交易金额 */
    @Excel(name = "卡片累计交易金额")
    private BigDecimal totalAmount;

    /** CVV */
    @Excel(name = "CVV")
    private String cvv;

    /** 卡片有效年 */
    @Excel(name = "卡片有效年")
    private String expirationYear;

    /** 卡片有效月 */
    @Excel(name = "卡片有效月")
    private String expirationMonth;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "添加时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dateAdded;

    /** 销卡申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "销卡申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dateApplyCancel;

    /** 销卡完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "销卡完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dateCompleteCancel;

    /** 卡片状态(0,1,4,5,10) 备注: 0:停用,1激活,4:已销卡,5:待处理,10:销卡待处理 */
    @Excel(name = "卡片状态(0,1,4,5,10) 备注: 0:停用,1激活,4:已销卡,5:待处理,10:销卡待处理")
    private Integer status;

    public void setCardId(Long cardId) 
    {
        this.cardId = cardId;
    }

    public Long getCardId() 
    {
        return cardId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setCardNumber(String cardNumber) 
    {
        this.cardNumber = cardNumber;
    }

    public String getCardNumber() 
    {
        return cardNumber;
    }
    public void setCardName(String cardName) 
    {
        this.cardName = cardName;
    }

    public String getCardName() 
    {
        return cardName;
    }
    public void setVid(String vid) 
    {
        this.vid = vid;
    }

    public String getVid() 
    {
        return vid;
    }
    public void setAccountName(String accountName) 
    {
        this.accountName = accountName;
    }

    public String getAccountName() 
    {
        return accountName;
    }
    public void setBin(String bin) 
    {
        this.bin = bin;
    }

    public String getBin() 
    {
        return bin;
    }
    public void setGroupName(String groupName) 
    {
        this.groupName = groupName;
    }

    public String getGroupName() 
    {
        return groupName;
    }
    public void setIsAutoLimit(Integer isAutoLimit) 
    {
        this.isAutoLimit = isAutoLimit;
    }

    public Integer getIsAutoLimit() 
    {
        return isAutoLimit;
    }
    public void setDayLimitAmount(BigDecimal dayLimitAmount) 
    {
        this.dayLimitAmount = dayLimitAmount;
    }

    public BigDecimal getDayLimitAmount() 
    {
        return dayLimitAmount;
    }
    public void setBalanceAmount(BigDecimal balanceAmount) 
    {
        this.balanceAmount = balanceAmount;
    }

    public BigDecimal getBalanceAmount() 
    {
        return balanceAmount;
    }
    public void setRecentAmount(BigDecimal recentAmount) 
    {
        this.recentAmount = recentAmount;
    }

    public BigDecimal getRecentAmount() 
    {
        return recentAmount;
    }
    public void setMonthAmount(BigDecimal monthAmount) 
    {
        this.monthAmount = monthAmount;
    }

    public BigDecimal getMonthAmount() 
    {
        return monthAmount;
    }
    public void setYearAmount(BigDecimal yearAmount) 
    {
        this.yearAmount = yearAmount;
    }

    public BigDecimal getYearAmount() 
    {
        return yearAmount;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setCvv(String cvv) 
    {
        this.cvv = cvv;
    }

    public String getCvv() 
    {
        return cvv;
    }
    public void setExpirationYear(String expirationYear) 
    {
        this.expirationYear = expirationYear;
    }

    public String getExpirationYear() 
    {
        return expirationYear;
    }
    public void setExpirationMonth(String expirationMonth) 
    {
        this.expirationMonth = expirationMonth;
    }

    public String getExpirationMonth() 
    {
        return expirationMonth;
    }
    public void setDateAdded(Date dateAdded) 
    {
        this.dateAdded = dateAdded;
    }

    public Date getDateAdded() 
    {
        return dateAdded;
    }
    public void setDateApplyCancel(Date dateApplyCancel) 
    {
        this.dateApplyCancel = dateApplyCancel;
    }

    public Date getDateApplyCancel() 
    {
        return dateApplyCancel;
    }
    public void setDateCompleteCancel(Date dateCompleteCancel) 
    {
        this.dateCompleteCancel = dateCompleteCancel;
    }

    public Date getDateCompleteCancel() 
    {
        return dateCompleteCancel;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("cardId", getCardId())
            .append("userId", getUserId())
            .append("cardNumber", getCardNumber())
            .append("cardName", getCardName())
            .append("vid", getVid())
            .append("accountName", getAccountName())
            .append("bin", getBin())
            .append("groupName", getGroupName())
            .append("isAutoLimit", getIsAutoLimit())
            .append("dayLimitAmount", getDayLimitAmount())
            .append("balanceAmount", getBalanceAmount())
            .append("recentAmount", getRecentAmount())
            .append("monthAmount", getMonthAmount())
            .append("yearAmount", getYearAmount())
            .append("totalAmount", getTotalAmount())
            .append("cvv", getCvv())
            .append("expirationYear", getExpirationYear())
            .append("expirationMonth", getExpirationMonth())
            .append("dateAdded", getDateAdded())
            .append("dateApplyCancel", getDateApplyCancel())
            .append("dateCompleteCancel", getDateCompleteCancel())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
